DynamoDB Streams হল একটি ফিচার যা DynamoDB টেবিলের উপর যে কোনও পরিবর্তন (যেমন, ইনসার্ট, আপডেট, বা ডিলিট) ট্র্যাক করে এবং তা একটি স্ট্রিমে সংরক্ষণ করে। AWS Lambda কে DynamoDB Streams এর সাথে সংযুক্ত করে, আপনি রিয়েল-টাইমে ডেটা পরিবর্তন প্রসেস করতে পারেন। উদাহরণস্বরূপ, যদি আপনার DynamoDB টেবিলে কোনও নতুন রেকর্ড যোগ হয় বা কোনও রেকর্ড আপডেট হয়, Lambda ফাংশন তখনই চালু হবে এবং নির্দিষ্ট কাজ করতে পারবে, যেমন ডেটা প্রক্রিয়া করা, অন্য সার্ভিসে পাঠানো, বা লগ তৈরি করা।
এটি event-driven architecture তৈরি করতে সাহায্য করে, যেখানে DynamoDB টেবিলের পরিবর্তন সিস্টেমের অন্যান্য অংশের জন্য অটোমেটিক্যালি ট্রিগার তৈরি করতে পারে।
DynamoDB Streams এবং AWS Lambda ইন্টিগ্রেট করার জন্য আপনাকে কয়েকটি ধাপ অনুসরণ করতে হবে।
প্রথমে, আপনাকে DynamoDB টেবিলে Streams সক্রিয় করতে হবে। এই স্ট্রিমটি টেবিলের উপর করা সমস্ত পরিবর্তন ক্যাপচার করবে এবং Lambda ফাংশন সেই পরিবর্তন প্রসেস করতে পারবে।
Lambda ফাংশনটি ব্যবহারকারী যে পরিবর্তনটি করছে তা প্রসেস করবে। এটি DynamoDB Streams এর ইনপুট হিসেবে কাজ করবে এবং টেবিলের পরিবর্তনগুলি প্রসেস করবে।
DynamoDBStreamProcessor
), এবং Runtime হিসেবে Python
বা Node.js
নির্বাচন করুন।StreamRead
পারমিশন থাকতে হবে।import json
def lambda_handler(event, context):
# স্ট্রিমের ভিতরের রেকর্ডে প্রতিটি পরিবর্তন প্রসেস করা
for record in event['Records']:
print(f"Event Name: {record['eventName']}")
if record['eventName'] == 'INSERT':
print("New record added:", json.dumps(record['dynamodb']['NewImage']))
elif record['eventName'] == 'MODIFY':
print("Record modified:", json.dumps(record['dynamodb']['NewImage']))
elif record['eventName'] == 'REMOVE':
print("Record removed:", json.dumps(record['dynamodb']['OldImage']))
return {'statusCode': 200, 'body': json.dumps('Processed DynamoDB stream successfully!')}
Lambda ফাংশনটি DynamoDB Stream এর মাধ্যমে ট্রিগার করা হবে। DynamoDB Stream এর প্রতিটি ইভেন্ট Lambda ফাংশনের event
প্যারামিটার হিসেবে পৌঁছাবে।
এখন, যখনই আপনার DynamoDB টেবিলে কোনো পরিবর্তন হবে (যেমন ইনসার্ট, আপডেট বা ডিলিট), সেই পরিবর্তন Lambda ফাংশন দ্বারা প্রসেস করা হবে।
Lambda ফাংশনের জন্য একটি Execution Role অ্যাসাইন করুন, যা DynamoDB Streams থেকে ডেটা অ্যাক্সেস করার অনুমতি দেবে।
এই Role এর জন্য নিচের পারমিশন প্রয়োজন:
dynamodb:DescribeStream
dynamodb:GetRecords
dynamodb:GetShardIterator
dynamodb:ListStreams
এই পারমিশনগুলো Lambda ফাংশনকে DynamoDB Stream থেকে ডেটা রিড করতে সহায়তা করবে।
Lambda ফাংশনটি চলার সময় সমস্ত লোগ আপনি Amazon CloudWatch এর মাধ্যমে দেখতে পারবেন। এটি আপনাকে Lambda ফাংশনের কার্যকারিতা মনিটর করতে এবং সমস্যা শনাক্ত করতে সহায়তা করবে।
DynamoDB Streams এবং AWS Lambda এর ইন্টিগ্রেশন খুবই শক্তিশালী এবং এটি real-time ডেটা প্রসেসিংয়ে একটি দক্ষ সমাধান। DynamoDB Streams ব্যবহার করে আপনি আপনার টেবিলের পরিবর্তনগুলি ক্যাপচার করতে পারবেন এবং Lambda দিয়ে সেই ডেটা প্রসেস করতে পারবেন, যা আপনাকে event-driven architectures তৈরি করতে সাহায্য করবে।
common.read_more